Method and apparatus for priority management of system algorithms in real time

ABSTRACT

A method for management of real-time system algorithms to achieve optimal efficiency which provides for dynamically managing priorities in a complex real-time system, considering the dynamic requirements of the system. A preferred embodiment describes the management of a plurality of RRM algorithms, including algorithms for SCC escape, LM escape, SCC rate control, and F-DCA background. More specifically, one exemplary embodiment assists in deciding: when to increase algorithm priorities, how to increase/decrease algorithm priorities, how to assign priority parameters, and how to dynamically manage priorities in the system, to result in optimal system efficiency.

[0001] CROSS REFERENCE TO RELATED APPLICATION(S)

[0002] This application is a continuation of U.S. patent application Ser. No. 10/419,471, filed Apr. 21, 2003, which claims the benefit of U.S. provisional application No. 60/417,529, filed on Oct. 10, 2002, which are incorporated by reference as if fully set forth.

FIELD OF INVENTION

[0003] This invention relates generally to complex real time systems in wireless communications, and more particularly to a method for dynamically managing the priority of system algorithms to achieve optimal efficiency.

BACKGROUND

[0004] The following are expansions for certain acronyms used in this application: SCC slow congestion control F-DCA fast dynamic channel allocation LM link maintenance C-RNC controlling network controller

[0005] There is an ever-increasing need to achieve enhanced efficiency of operation in complex communication systems, and, the need is even greater in management of real time systems that use a plurality of algorithms.

[0006] In complex real-time systems, it is desirable to use priority-handling mechanisms on processes to achieve optimal efficiency. The RRM (Radio Resource Management) algorithms fall into the above category. Traditional fixed-priority handling mechanisms work well in small and stable systems. However, the wireless communication environment is very dynamic and complex. It is necessary and beneficial that the execution priority of the algorithms can be changed according to the most current system status.

[0007] Prior art offers information in patent publications that deal with operating system scheduling and packet scheduling, for example. The following are examples of US patents generally in the field of networks:

[0008] In U.S. Pat. No. 6,453,360, titled “High Performance Network Interface”, a high performance network interface is provided for receiving a packet from a network and transferring it to a host computer system. A header portion of a received packet is parsed by a parser module to determine the received packet's compatibility with, or conformance to, one or more pre-selected protocols. Packets are stored in multiple queues with priorities.

[0009] U.S. Pat. No. 6,452,915, titled “IP-flow Classification in a Wireless Point To Multi-Point (PTMP) Transmission System”, is directed to an IP-flow classification system used in a wireless telecommunications system. More specifically, the IP flow classification system in said U.S. patent provides for grouping IP-flows from a packet-centric wireless point to a multi-point telecommunications system. A quality of service (QoS) grouping device therein may include an optional differentiated services (Diff-Serv) device that takes into account an optional Diff-Serv field priority-marking for the IP-flow.

[0010] In U.S. Pat. 6,449,251, titled “Packet Mapper for Dynamic Data Packet Prioritization”, a packet-mapper maps streams of data packets in a computer network, each data packet having a packet header containing feature values descriptive of the data packet. The packet-mapper includes a mapping table that associates application-related feature values with network-reserved feature values from a range of feature values reserved for use by selected network data packet streams. Prioritization in said US Patent is achieved by assigning a port-number for packets.

[0011] The above examples of US patent publications are, however, not directly applicable to management of and scheduling between different RRM algorithms, and do not take into account system status.

[0012] It is desirable to provide a method of dynamically managing system algorithms, e.g., RRM algorithms, so as to achieve optimal efficiency.

SUMMARY

[0013] The present invention provides a method of dynamically managing system algorithms in wireless communications, considering system status in real time. The present invention recognizes that in general, in complex real-time systems such as wireless systems, it is very desirable to use priority-handling mechanisms on the processes to achieve optimal efficiency. RRM is a collection of relatively independent algorithms whose common purpose is to manage the scarce radio resources efficiently. For example, although the purpose of each RRM algorithm may be somewhat independent of the other, the algorithms may end up acting on similar objects (e.g., one algorithm may want to reduce the rate of the link, whereas another may want to move it to another timeslot). To achieve optimal results, the algorithms should be executed in a timely manner. However, it is not efficient for the algorithms to be running at the same time trying to solve the same problem. Moreover, the best solution at one time may not be the best solution at another time due to the quick and unpredictable changes of system status and system-performance in the wireless environment.

[0014] The present inventive method of dynamic priority management provides an efficient way to prioritize different algorithms in a fast changing environment. It can be applied to, but is not limited to the RRM system. The inventive method is general and targets different types of complex and dynamic real-time systems.

[0015] As described hereinafter, a preferred embodiment provides a method for dynamic priority management of system algorithms. It is especially suitable for large, complex and dynamic systems such as wireless communication systems. Specifically, the following aspects of the inventive method are addressed hereinafter:

[0016] a) when to increase or decrease algorithm priorities,

[0017] b) how to increase or decrease algorithm priorities,

[0018] c) how to assign priority parameters, and

[0019] d) how to dynamically manage priorities in the system.

[0020] The inventive method provides at least the following advantages:

[0021] avoidance of the higher priority algorithms always triggering above lower priority algorithms even though they are not the best candidates to solve a problem under certain circumstances, and the ability to change priorities of the algorithms according to the latest system status and performance so that algorithms are executed in an optimal order and in a timely manner.

BRIEF DESCRIPTION OF THE FIGURES

[0022] A more detailed understanding of the invention may be had from the following description of a preferred embodiment, given by way of example and to be understood in conjunction with the accompanying drawings wherein:

[0023]FIG. 1 is a flowchart showing the process steps applicable to the preferred embodiment, to illustrate the decrease of priority; and,

[0024]FIG. 2 is a flowchart showing the process steps applicable to the preferred embodiment, to illustrate the increase of priority.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT(S)

[0025] Described hereinafter is a preferred embodiment of the inventive method of managing RRM algorithms, as an example, for obtaining optimum efficiency. For managing a plurality of algorithms, the following exemplary method steps may be noted:

[0026] a) define algorithm priority levels as P₁, P₂, . . . , P_(n)(1. . . n are consecutive integers), where P_(n) has the highest priority. These predefined priority levels are the original priority designations for each algorithm, and

[0027] b) define the same priority parameters for algorithms within the same priority level. Priority parameters are those parameters that affect the trigger of an algorithm and they vary in different systems. In the RRM system, the priority parameters can include thresholds, filtering of a measurement, ‘n’ out of ‘m’ measurements that trigger an algorithm, and an algorithm periodical timer.

[0028] In a normal situation, the algorithms should be executed in the order of P_(n), P_(n−1), . . . , and P₁ if they are triggered at the same time.

[0029] If, after the execution(s) of an algorithm, the problem is not solved (e.g., measurement exceeds threshold again), the priority of the algorithm should be decreased so that algorithms with lower priority can take action.

[0030] The method to decrease priority is:

[0031] c) When to decrease the algorithm priority:

[0032] There can be multiple reasons to decrease a priority level of an algorithm:

[0033] aa. Decrease the priority to optimize interaction of the algorithms.

[0034] Option 1: A simple approach is to define a fixed parameter for all algorithms of all priority levels, as F.F is the number of consecutive times that the algorithm failed to solve the problem. After F times of the execution, the priority of the algorithm should be decreased as described in step (d) below.

[0035] Option 2: Use the priority level P_(n) as a weight parameter. F is the number of consecutive times that the algorithm failed to solve the problem. The priority of the algorithm decreases after P_(n)*F times'0 execution. This is to provide algorithms with higher priority a “higher priority” to stay in their current priority, so that there are more chances that higher priority algorithms solve the problem.

[0036] ab. Decrease the priority of an algorithm when it is undesirable to execute it. An example is to adjust algorithm priorities when the system environment has changed. Most likely the change will be reflected in measurement results. The priority of an algorithm can be decreased when a certain measurement has crossed a threshold and the algorithm is not a favorable candidate under this situation.

[0037] d) Decrease the priority level by 2, i.e., an algorithm with priority of P_(n) will have priority of P_(n−2). This is to allow algorithms with priority level P_(n−1) to be executed.

[0038] e) Theoretically, there is no limit on how many times the priority can be decreased. Practically, there should be a design parameter to define the maximum number of decreases, or to define the lowest priority level that an algorithm can be assigned.

[0039] f) When an algorithm has been decreased by the maximum number of times, or it has reached its minimum priority level, the priority change should be stopped.

[0040] g) In case there is more than one algorithm with the same priority to be executed, the algorithms are chosen on a “first come, first serve” basis.

[0041] Once the priority of an algorithm is decreased, it should be restored, i.e., increased back, under certain circumstances. The increase of the priority is similar to the decrease thereof except that it is in the reverse order.

[0042] The method to increase the algorithm priority:

[0043] h) When to increase the algorithm priority:

[0044] a. Priority was decreased using step (c) aa

[0045] Option 1: Increase the priority when the algorithm has been triggered again for the Nth time after it has been decreased (n=1, 2 . . . ).

[0046] Option 2: Use the original priority level P_(n) as a weight parameter. N is the number of times that the algorithm has been triggered again. The priority of the algorithm increases after N/P_(n) times' execution. This is to provide algorithms with higher priority a “higher priority” to go back to or toward their original priority.

[0047] b. Priority was decreased using step (c) ab

[0048] Increase the priority of an algorithm when it is desirable.

[0049] i) Increases the priority level by 2, i.e., restore to the last priority level.

[0050] j) Increase of priority stops when it has reached the original priority of the algorithm.

[0051] k) In case there is more than one algorithm with the same priority to be executed, the algorithms are chosen on a “first come, first serve” basis.

[0052] l) Priority is increased after time T has been decreased. T is a design parameter. The time should be relatively long, for example, greater than the time interval of n times' executions of the algorithm. This is to make sure that an algorithm does not stay with priority lower than its original one in case it is not triggered for a long time.

[0053] The following is an example of the application of the inventive method for management and priority handling of the RRM algorithms.

[0054] Example: Assign priorities of the RRM algorithms as follows. This is the original priority of the algorithms under a normal situation. Note that algorithms within the same priority level have the same priority parameters, for example, the thresholds, the filtering of a measurement, the “n” out of “m” measurements that trigger the algorithm. TABLE 1 Priority of C-RNC RRM Algorithms Priority Level Algorithms in C-RNC P₃ (highest) SCC Escape, LM Escape P₂ (medium) SCC Rate Control P₁ (lowest) F-DCA Background

[0055]FIGS. 1 and 2 illustrate flowcharts of the operation using the guidelines for priority increase and decrease as set forth above. It is to be noted that the decision to increase or decrease is associated with the point (A) in the diagrams, which are separated for clarity. The steps in the two flowcharts are self-explanatory. Two scenarios are addressed in the following description.

[0056] Scenario 1:

[0057] SCC Escape and SCC Rate Control work on a cell-basis. SCC Escape algorithm may be given a higher priority since it is designed to solve current problems (interference, power). SCC Rate Control may be given a lower priority since it is designed to take proactive action to avoid cell congestion.

[0058] Define that at priority level 3, SCC Escape algorithm is triggered whenever it receives a bad measurement, and the measurement may be reported every 500 ms, for example. At priority level 2, SCC Rate Control algorithm, may be triggered every 3 seconds, for example.

[0059] If the SCC Escape algorithm cannot solve the problem after it is triggered once (here it is assumed that F is 1), its priority is decreased to 1, and it is assumed that it will be triggered 8 out of 10 measurements. So it may be triggered at least every 5 seconds, for example. This gives the SCC Rate Control algorithm the chance to take action over the SCC Escape algorithm.

[0060] If after the priority decrease, SCC Escape algorithm and SCC Rate Control algorithm are triggered at the same time, the SCC Rate Control algorithm is given higher priority to run since its priority level is higher.

[0061] If the SCC-Escape algorithm is triggered at priority level 1 (which means that the system may be experiencing a really bad quality), its priority should be increased to 3 so that it will be triggered more frequently.

[0062] If the SCC-Escape algorithm is not triggered for a period of time T (it means the system recovers after other algorithms take action), its priority should be increased back to 3.

[0063] Scenario 2:

[0064] F-DCA background is designed to equalize the load of the timeslots and optimize system performance. It is not desirable to run the system when it is overloaded. By dynamically decreasing the priority of the F-DCA background (which may go below 0−), its chances of running reduce, so that other higher priority algorithms will have a chance to operate on the resources.

[0065] The foregoing is a description of a preferred embodiment and an exemplary application of the invention to the RRM scenario, wherein, an optimal dynamic management of the algorithms, e.g., SCC Escape, LM Escape, SCC Rate Control, and F-DCA Background algorithms, achieves an optimal efficiency.

[0066] Even though the example hereinabove makes references to RRM algorithms, it is to be understood that the inventive concept of dynamic management of system-algorithms is applicable to other scenarios as well. 

What is claimed is:
 1. A method for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: a) assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; b) assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; c) selecting an algorithm wherein, when two or more algorithms are associated with a given condition, that algorithm having a higher priority is selected; d) accumulating a number of times an algorithm has been consecutively selected and has failed to solve a problem; and e) retaining a priority level assigned to the selected algorithm when the number accumulated in step (d) is less than a given number.
 2. The method of claim 1 wherein step (e) further comprises: changing the priority level when the number accumulated in step (d) is at least equal to said given number.
 3. The method of claim 1 wherein step (d) further comprises: performing said selected algorithm.
 4. The method of claim 1 further comprising: f) lowering a priority level of the selected algorithm when it has been consecutively selected said given number of times and its priority level has not been lowered below a lowest allowed priority.
 5. The method of claim 4 wherein step (f) includes: lowering the priority level by two (2) levels.
 6. The method of claim 4 wherein step (f) further comprises: preventing said algorithm from being performed.
 7. The method of claim 4 further comprising: executing the selected algorithm when its priority level priority has been lowered to a lowest allowable priority and there is no other algorithm to choose; and preventing the algorithm from having its present priority level lowered.
 8. The method of claim 5 further comprising searching for an algorithm with a lower priority level to ease or cure the existing condition.
 9. A method for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: a) assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; b) assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; c) decreasing the priority level of a selected algorithm when conditions indicate it is not favorable to perform the algorithm.
 10. The method of claim 9 wherein step (c) further includes: d) decreasing the assigned priority level of the selected algorithm when it is at a condition which is one of reaching its lowest permitted priority level and has its priority decreased a given number of times.
 11. The method of claim 10 wherein step (d) includes: (e) preventing selection of the algorithm.
 12. The method of claim 9 wherein step (c) further includes: waiting for selection of an algorithm with a new priority level.
 13. The method of claim 10 wherein step (d) further includes: (e) determining if there is another algorithm to choose when neither condition in step (d) is achieved.
 14. The method of claim 13 wherein step (c) further includes: (f) repeating step (b).
 15. The method of claim 13 further comprising: returning to step (a) when there are no other algorithms to choose.
 16. A method for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: a) assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; b) assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; c) selecting an algorithm wherein, when two or more algorithms are associated with a given condition, that algorithm having a higher priority is selected; d) accumulating a number of times an algorithm has been consecutively selected at a given priority level; and e) increasing the priority level of the selected algorithm when the selected algorithm has been selected a given number of times at its present priority level.
 17. The method of claim 16 wherein step (e) includes increasing the priority level by two (2) levels.
 18. The method of claim 17 further including: executing the selected algorithm.
 19. A method for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: a) assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; b) assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; c) selecting an algorithm wherein, when two or more algorithms are associated with a given condition, that algorithm having a higher priority is selected; d) accumulating a number of times an algorithm has been consecutively selected and has failed to cure or ease a condition; and e) reducing the priority level assigned to the selected algorithm when the number accumulated in step (d) is at least equal to said given number.
 20. A method for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: a) assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; b) assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; c) selecting an algorithm for use; d) accumulating a number of times an algorithm whose priority level has been reduced has been consecutively selected and has failed to cure or ease a condition; e) forming a product of the count accumulated at step (d) with the priority level assigned to the selected algorithm; and f) reducing the priority level assigned to the selected algorithm when the product formed at step (e) is at least equal to a given number.
 21. A method for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: a) assigning a priority level, taken from priority levels P₁, P₂, P₃ . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; b) assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; c) selecting an algorithm for use; d) accumulating a number of times an algorithm whose priority level has been reduced has been consecutively selected; and e) increasing the priority level of the selected algorithm when the number accumulated in step (d) is at least equal to said given number.
 22. Apparatus for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: a) means for assigning a priority level, taken from priority levels P₁, P₂, P₃ . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; b) means for assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; c) means for selecting an algorithm wherein, when two or more algorithms are associated with a given condition, that algorithm having a higher priority is selected; d) means for accumulating a number of times an algorithm has been consecutively selected and has failed to solve a problem; and e) means for retaining a priority level assigned to the selected algorithm when the number accumulated in said accumulating means is less than a given number.
 23. The apparatus of claim 22 wherein said means for retaining further comprises: means for changing the priority level when the number accumulated in the accumulating means is at least equal to said given number.
 24. The apparatus of claim 22 further comprising: means for lowering a priority level of the selected algorithm when it has been consecutively selected said given number of times and its priority level has not been lowered below a lowest allowed priority.
 25. The apparatus of claim 24 wherein said means for lowering includes: means for lowering the priority level by two (2) levels.
 26. The apparatus of claim 24 wherein said means for retaining further comprises: preventing said algorithm from being performed.
 27. The apparatus of claim 24 further comprising: means for executing the selected algorithm when its priority level priority has been lowered to a lowest allowable priority and there is no other algorithm to choose; and preventing the algorithm from having its present priority level lowered.
 28. Apparatus for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: means for assigning a priority level, taken from priority levels P₁, P₂, P₃ . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; means for assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; means for decreasing the priority level of a selected algorithm when conditions indicate it is not favorable to perform the algorithm.
 29. The apparatus of claim 28 wherein said means for decreasing further includes: means for decreasing the assigned priority level of the selected algorithm when it is at a condition which is one of reaching its lowest permitted priority level and has its priority decreased a given number of times.
 30. The apparatus of claim 28 wherein said means for assigning includes: means for preventing selection of the algorithm.
 31. Apparatus for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: means for assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; means for assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; means for selecting an algorithm wherein, when two or more algorithms are associated with a given condition, that algorithm having a higher priority is selected; means for accumulating a number of times an algorithm has been consecutively selected at a given priority level; and means for increasing the priority level of the selected algorithm when the selected algorithm has been selected a given number of times at its present priority level.
 32. The apparatus of claim 31 wherein said means for increasing includes means for increasing the priority level by two (2) levels.
 33. Apparatus for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: means for assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; means for assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; means for selecting an algorithm wherein, when two or more algorithms are associated with a given condition, that algorithm having a higher priority is selected; means for decreasing the priority level of the selected algorithm when it has been consecutively selected a given number of times; means for setting a timer when the priority level of the selected algorithm has been decreased; and means for increasing the priority level of the selected algorithm when the timer times out before the algorithm is selected.
 34. Apparatus for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: means for assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; means for assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; means for selecting an algorithm wherein, when two or more algorithms are associated with a given condition, that algorithm having a higher priority is selected; means for accumulating a number of times an algorithm has been consecutively selected and has failed to cure or ease a condition; and means for reducing the priority level assigned to the selected algorithm when the number accumulated by said accumulating means is at least equal to said given number.
 35. Apparatus for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: means for assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; means for assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; means for selecting an algorithm for use; means for accumulating a number of times an algorithm whose priority level has been reduced has been consecutively selected and has failed to cure or ease a condition; means for forming a product of the count accumulated by said accumulating means with the priority level assigned to the selected algorithm; and means for reducing the priority level assigned to the selected algorithm when the product formed by said product forming means is at least equal to a given number.
 36. Apparatus for selecting an algorithm from a plurality of algorithms employed in a wireless communications system, each algorithm being provided to cure or ease a particular condition, comprising: means for assigning a priority level, taken from priority levels P₁, P₂, P3 . . . P_(n), to each algorithm wherein priority level P_(n) is a highest priority level; means for assigning a parameter to each algorithm wherein a same parameter is assigned to algorithms of a same priority level; means for selecting an algorithm for use; means for accumulating a number of times an algorithm whose priority level has been reduced has been consecutively selected; and means for increasing the priority level of the selected algorithm when the number accumulated by said accumulating means is at least equal to said given number. 